package com.xudu.tourbackend.service;

import com.xudu.tourbackend.entity.Element;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xudu.tourbackend.entity.request.AddElementRequest;
import com.xudu.tourbackend.entity.request.SearchElementRequest;
import com.xudu.tourbackend.entity.request.UpdateElementRequest;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author xudu
 * @since 2024-06-22
 */
public interface IElementService extends IService<Element> {

    /**
     * 添加元素
     *
     * @param addElementRequest 添加元素请求
     * @param request           请求
     * @return 元素信息
     */
    int addElement(AddElementRequest addElementRequest, HttpServletRequest request);

    /**
     * 更新元素
     * @param updateElementRequest 更新元素请求
     * @param request 请求
     * @return 元素信息
     */
    Boolean updateElement(UpdateElementRequest updateElementRequest, HttpServletRequest request);

    /**
     * 删除元素
     * @param ids 元素列表
     * @param request 请求
     * @return 删除结果
     */
    int deleteElement(List<Integer> ids, HttpServletRequest request);

    /**
     * 搜索元素
     *
     * @param searchElementRequest 查询元素请求体
     * @param request              请求
     * @return 元素信息
     */
    List<Element> searchElement(SearchElementRequest searchElementRequest, HttpServletRequest request);

    /**
     * 搜索元素
     * @param elementName 元素名称
     * @param request 请求
     * @return 元素信息
     */
    List<Element> searchElement(String elementName, HttpServletRequest request);

    /**
     * 搜索元素
     * @param tagId 标签id
     * @return 元素信息
     */
    List<Element> searchElement(int tagId);


}
